# 使用 xpath 方法定位元素要切记不论是 // 还是 / 后面必须跟上元素名
from selenium import webdriver

from time import sleep

driver = webdriver.Chrome()
driver.get(r'D:\BaiduNetdiskDownload\注册A.html')
# driver.find_element('xpath', '/html/body/form/div/fieldset/p[1]/input').send_keys('admin')
driver.find_element('xpath', "//p[@id='p1']/input").send_keys('admin')
# 一般来说，能使用相对路径不用绝对路径，一是因为写起来麻烦易错，二是因为一旦代码变更，绝对路径就需要跟着调整
# 当相对路径使尽办法也无法精确定位元素时，就求助于上一级(父级)辅助定位，同样的，父级也能使用属性结合定位，若还是不行，继续向上求助
sleep(2)
driver.find_element('xpath', "//input[@id='passwordA']").send_keys('123456')
sleep(2)
# 使用 //*[text()='文本内容'] 可以定位文本内容是与输入内容一致的元素，适用于a,p标签元素，注意这里是 == 操作不是 in 操作
driver.find_element('xpath', "//a[text()='访问 新浪 网站']").click()
sleep(3)
# 使用 //*[contains(@attribute, '属性值或属性值部分字符')] 可以定位对应的属性名的值含有引号内的内容的元素
driver.find_element('xpath', "//input[contains(@value, '请输入')]").send_keys('今日新闻')
# sleep(2)
# 使用 //*[starts-with(@attribute, '属性值或属性值部分字符')] 可以定位对应的属性名的值以引号内的内容为开头的元素
driver.find_element('xpath', "//input[starts-with(@name, 'Search') and @class='submit-second-btn']").click()
sleep(3)
driver.quit()
